package com.starview.star.operators.arith;

import com.starview.platform.data.type.IType;
import com.starview.platform.data.type.StandardTypes;
import com.starview.platform.data.type.TypeUtils;
import com.starview.star.operators.Builtin;
import com.starview.star.operators.Intrinsics;
import com.starview.star.operators.arith.runtime.FloatTrig.FloatACos;
import com.starview.star.operators.arith.runtime.FloatTrig.FloatASin;
import com.starview.star.operators.arith.runtime.FloatTrig.FloatATan;
import com.starview.star.operators.arith.runtime.FloatTrig.FloatCos;
import com.starview.star.operators.arith.runtime.FloatTrig.FloatCosh;
import com.starview.star.operators.arith.runtime.FloatTrig.FloatSin;
import com.starview.star.operators.arith.runtime.FloatTrig.FloatSinh;
import com.starview.star.operators.arith.runtime.FloatTrig.FloatTan;
import com.starview.star.operators.arith.runtime.FloatTrig.FloatTanh;



public abstract class FloatTrig
{

  public static void declare(Intrinsics cxt)
  {
    IType floatType = StandardTypes.rawFloatType;
    IType type = TypeUtils.functionType(floatType, floatType);

    cxt.declareBuiltin(new Builtin("__float_sin", type, FloatSin.class));
    cxt.declareBuiltin(new Builtin("__float_asin", type, FloatASin.class));
    cxt.declareBuiltin(new Builtin("__float_sinh", type, FloatSinh.class));
    cxt.declareBuiltin(new Builtin("__float_cos", type, FloatCos.class));
    cxt.declareBuiltin(new Builtin("__float_acos", type, FloatACos.class));
    cxt.declareBuiltin(new Builtin("__float_cosh", type, FloatCosh.class));
    cxt.declareBuiltin(new Builtin("__float_tan", type, FloatTan.class));
    cxt.declareBuiltin(new Builtin("__float_atan", type, FloatATan.class));
    cxt.declareBuiltin(new Builtin("__float_tanh", type, FloatTanh.class));
  }
}
